Week 4 (June 25-29)

Overview

This week I fixed those broken scripts from faster-rcnn and moved on to a new direction for implementing squeezeDet.

Monday

This day I interacted with the old test and train scripts to see what about them allows them to still work while my newer ones did not. Network files trained by either train are incompatable with the other's companion test, which was a hint.

I managed to narrow down the error to one line, but I did not understand what the line did or was supposed to do. My coworker and I spent a significant amount of time going over the old and new code to try to weed out the problem. We had no luck; it was decided I would, for now since the director is out this week, use the old test/train scripts since they already work.

Afterwards, I moved on to attempting to implement SqueezeDet on our system. I did not succeed - however the lab got our initial architectures to work eludes me entirely. Many needed files either do not exist anywhere I could find, or the scripts that I can find do not mesh together in any way I could puzzle out. I seemed to have found myself another doozie.

Tuesday

This day I looked into how PyTorch makes neural networks, so as to get a better understanding of how to read these .py implementations of networks. If I could understand how they are put together, I thought, I might gain some insight on how to get squeezenet to work. After working through a tutorial, I went into the resnet script and read through it - I understand (enough) how that works, how it all comes together, but not how it can mesh with the rest of our work and squeezenet cannot.

Afterwards, I happened to find what must be the original source for our network setup - it has all the files we have, if a few of them are changed. Meaning, we wrote almost none of the code I have been reading (which is not too much of a surprise) and thusly it is unlikely anyone in our lab knows how to add new networks. And I have spent over a week trying to get it to work, damaging (metaphorically) the lab's computer to do it. A shame. My coworker just this day after this discovery told me it is "almost assuredly" impossible to implement squeezenet, which is not faster_rcnn-built, with our faster_rcnn setup. Truly a well-timed reveal.

Wednesday

This day I contacted my predecessor, asking if they knew how I could address my issues regarding squeezenet or the current test_net. Regarding the latter, they referred me to the lab's repository that is a fork of the original code's repository that I found the previous day. After downloading and compiling (as directed by the readme) the repository, I discovered this version is not broken. Completely fine. I tried my version's scripts and they were still broken despite the repository's being perfectly functional. Some piece of some file broke somewhere in my copy and that was what the problem must have been. When I moved my test_net and trainval_net scripts to the repository, they worked just fine. Who knows what happened, but it seemed to have been fixed now.

Thursday

This day I expanded the information collection I compiled a few weeks ago to include some new terms and also a troubleshooting section. In said new section, I detailed my struggles over the past week and a half on getting Caffe installed and fixing test- and trainval_net scripts. With hope, my successor will not suffer as I have suffered.

Afterwards, I spent the rest of the day verifying yes indeed the new setup does work just the same as the old one and also just as well - equivalent results and runtimes.

Friday

This day I attended the weekly lab-wide meeting where the director calls together my coworker, two student workers on summer leave, and me so that we may discuss our respective progress over the previous week and troubleshoot issues. I talked about finally getting both Caffe and the scripts to work.

Afterward, I found a new repo for SqueezeDet, this one entirely unrelated to our previous work. It runs on the KITTI dataset, a public dataset used for self-driving cars. I needed to edit the repo to get it to work with our dataset, but first I ran it as it came out of the box, so to speak, to see how it ran normally. I left it to go over the weekend to see the results when I returned on Monday.